<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>FindBugs Report</title>
<style type="text/css">
		.tablerow0 {
			background: #EEEEEE;
		}

		.tablerow1 {
			background: white;
		}

		.detailrow0 {
			background: #EEEEEE;
		}

		.detailrow1 {
			background: white;
		}

		.tableheader {
			background: #b9b9fe;
			font-size: larger;
		}

		.tablerow0:hover, .tablerow1:hover {
			background: #aaffaa;
		}
		</style>
<script type="text/javascript">
			function toggleRow(elid) {
				if (document.getElementById) {
					element = document.getElementById(elid);
					if (element) {
						if (element.style.display == 'none') {
							element.style.display = 'block';
							//window.status = 'Toggle on!';
						} else {
							element.style.display = 'none';
							//window.status = 'Toggle off!';
						}
					}
				}
			}
		</script>

</head>
<body>
<h1>FindBugs Report</h1>
<h2>Project Information</h2>
<p>Project: /export/home/daveho/commons-modeler-1.1/commons-modeler.fb</p>
<p>FindBugs version: 0.8.7</p>
<p>Code analyzed:</p>
<ul>
<li>/export/home/daveho/commons-modeler-1.1/commons-modeler.jar</li>
</ul>
<h2>Contents</h2>
<ul>
<li>
<a href="#Warnings_CORRECTNESS">Correctness Warnings</a>
</li>
<li>
<a href="#Warnings_I18N">Internationalization Warnings</a>
</li>
<li>
<a href="#Warnings_MT_CORRECTNESS">Multithreaded Correctness Warnings</a>
</li>
<li>
<a href="#Warnings_MALICIOUS_CODE">Malicious Code Vulnerability Warnings</a>
</li>
<li>
<a href="#Warnings_PERFORMANCE">Performance Warnings</a>
</li>
<li>
<a href="#Warnings_STYLE">Style Warnings</a>
</li>
<li>
<a href="#Details">Details</a>
</li>
</ul>
<h1>Warnings</h1>
<p>Click on a warning row to see full context information.</p>
<h2>
<a name="Warnings_CORRECTNESS">Correctness Warnings</a>
</h2>
<table class="warningtable" width="100%" cellspacing="0">
<tr class="tableheader">
<th align="left">Code&nbsp;</th>
<th align="left">Warning</th>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66047');">
<td>IL</td>
<td> There is an apparent infinite recursive loop in org.apache.commons.modeler.Registry.setServer(javax.management.MBeanServer).</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66047" style="display: none;">
<a href="#IL_INFINITE_RECURSIVE_LOOP">Bug type IL_INFINITE_RECURSIVE_LOOP (click for details)</a>
<br/>In class org.apache.commons.modeler.Registry
<br/>In method org.apache.commons.modeler.Registry.setServer(javax.management.MBeanServer)
<br/>At Registry.java:[line 551]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N65687');">
<td>NP</td>
<td> Read of unwritten field in org.apache.commons.modeler.JndiJmx.handleNotification(javax.management.Notification,Object)</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N65687" style="display: none;">
<a href="#NP_UNWRITTEN_FIELD">Bug type NP_UNWRITTEN_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.JndiJmx
<br/>In method org.apache.commons.modeler.JndiJmx.handleNotification(javax.management.Notification,Object)
<br/>At JndiJmx.java:[line 173]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66381');">
<td>NP</td>
<td> Read of unwritten field in org.apache.commons.modeler.mbeans.SimpleRemoteConnector.refreshAttributes()</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66381" style="display: none;">
<a href="#NP_UNWRITTEN_FIELD">Bug type NP_UNWRITTEN_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.mbeans.SimpleRemoteConnector
<br/>In method org.apache.commons.modeler.mbeans.SimpleRemoteConnector.refreshAttributes()
<br/>At SimpleRemoteConnector.java:[line 312]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66193');">
<td>NP</td>
<td> Possible null pointer dereference in org.apache.commons.modeler.Registry.findManagedBeans(String)</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66193" style="display: none;">
<a href="#NP_NULL_ON_SOME_PATH">Bug type NP_NULL_ON_SOME_PATH (click for details)</a>
<br/>In class org.apache.commons.modeler.Registry
<br/>In method org.apache.commons.modeler.Registry.findManagedBeans(String)
<br/>At Registry.java:[line 507]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66720');">
<td>NP</td>
<td> Possible null pointer dereference in org.apache.commons.modeler.util.IntrospectionUtils.findMethod(Class,String,Class[])</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66720" style="display: none;">
<a href="#NP_NULL_ON_SOME_PATH">Bug type NP_NULL_ON_SOME_PATH (click for details)</a>
<br/>In class org.apache.commons.modeler.util.IntrospectionUtils
<br/>In method org.apache.commons.modeler.util.IntrospectionUtils.findMethod(Class,String,Class[])
<br/>At IntrospectionUtils.java:[line 858]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N65584');">
<td>UCF</td>
<td> Useless control flow in org.apache.commons.modeler.BaseNotificationBroadcaster.registerNotifications(FixedNotificationFilter)</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N65584" style="display: none;">
<a href="#UCF_USELESS_CONTROL_FLOW">Bug type UCF_USELESS_CONTROL_FLOW (click for details)</a>
<br/>In class org.apache.commons.modeler.BaseNotificationBroadcaster
<br/>In method org.apache.commons.modeler.BaseNotificationBroadcaster.registerNotifications(FixedNotificationFilter)
<br/>At BaseNotificationBroadcaster.java:[line 280]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N65724');">
<td>UwF</td>
<td> Unwritten field: org.apache.commons.modeler.JndiJmx.mserver</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N65724" style="display: none;">
<a href="#UWF_UNWRITTEN_FIELD">Bug type UWF_UNWRITTEN_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.JndiJmx
<br/>Field org.apache.commons.modeler.JndiJmx.mserver</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66462');">
<td>UwF</td>
<td> Unwritten field: org.apache.commons.modeler.mbeans.SimpleRemoteConnector.mserver</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66462" style="display: none;">
<a href="#UWF_UNWRITTEN_FIELD">Bug type UWF_UNWRITTEN_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.mbeans.SimpleRemoteConnector
<br/>Field org.apache.commons.modeler.mbeans.SimpleRemoteConnector.mserver</p>
</td>
</tr>
</table>
<h2>
<a name="Warnings_I18N">Internationalization Warnings</a>
</h2>
<table class="warningtable" width="100%" cellspacing="0">
<tr class="tableheader">
<th align="left">Code&nbsp;</th>
<th align="left">Warning</th>
</tr>
</table>
<h2>
<a name="Warnings_MT_CORRECTNESS">Multithreaded Correctness Warnings</a>
</h2>
<table class="warningtable" width="100%" cellspacing="0">
<tr class="tableheader">
<th align="left">Code&nbsp;</th>
<th align="left">Warning</th>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66084');">
<td>IS2</td>
<td> Inconsistent synchronization of org.apache.commons.modeler.Registry.server; locked 66% of time</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66084" style="display: none;">
<a href="#IS2_INCONSISTENT_SYNC">Bug type IS2_INCONSISTENT_SYNC (click for details)</a>
<br/>In class org.apache.commons.modeler.Registry
<br/>Field org.apache.commons.modeler.Registry.server
<br/>Synchronized 66% of the time
<br/>Unsynchronized access at Registry.java:[line 1057]
<br/>Unsynchronized access at Registry.java:[line 1016]
<br/>Synchronized access at Registry.java:[line 658]
<br/>Synchronized access at Registry.java:[line 671]
<br/>Synchronized access at Registry.java:[line 665]
<br/>Synchronized access at Registry.java:[line 660]</p>
</td>
</tr>
</table>
<h2>
<a name="Warnings_MALICIOUS_CODE">Malicious Code Vulnerability Warnings</a>
</h2>
<table class="warningtable" width="100%" cellspacing="0">
<tr class="tableheader">
<th align="left">Code&nbsp;</th>
<th align="left">Warning</th>
</tr>
<tr class="tablerow1" onclick="toggleRow('N65643');">
<td>EI</td>
<td> org.apache.commons.modeler.ConstructorInfo.getSignature() may expose internal representation by returning org.apache.commons.modeler.ConstructorInfo.parameters</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N65643" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.ConstructorInfo
<br/>In method org.apache.commons.modeler.ConstructorInfo.getSignature()
<br/>Field org.apache.commons.modeler.ConstructorInfo.parameters
<br/>At ConstructorInfo.java:[line 139]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N65746');">
<td>EI</td>
<td> org.apache.commons.modeler.ManagedBean.getAttributes() may expose internal representation by returning org.apache.commons.modeler.ManagedBean.attributes</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N65746" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.ManagedBean
<br/>In method org.apache.commons.modeler.ManagedBean.getAttributes()
<br/>Field org.apache.commons.modeler.ManagedBean.attributes
<br/>At ManagedBean.java:[line 136]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N65790');">
<td>EI</td>
<td> org.apache.commons.modeler.ManagedBean.getConstructors() may expose internal representation by returning org.apache.commons.modeler.ManagedBean.constructors</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N65790" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.ManagedBean
<br/>In method org.apache.commons.modeler.ManagedBean.getConstructors()
<br/>Field org.apache.commons.modeler.ManagedBean.constructors
<br/>At ManagedBean.java:[line 160]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N65834');">
<td>EI</td>
<td> org.apache.commons.modeler.ManagedBean.getNotifications() may expose internal representation by returning org.apache.commons.modeler.ManagedBean.notifications</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N65834" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.ManagedBean
<br/>In method org.apache.commons.modeler.ManagedBean.getNotifications()
<br/>Field org.apache.commons.modeler.ManagedBean.notifications
<br/>At ManagedBean.java:[line 230]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N65878');">
<td>EI</td>
<td> org.apache.commons.modeler.ManagedBean.getOperations() may expose internal representation by returning org.apache.commons.modeler.ManagedBean.operations</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N65878" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.ManagedBean
<br/>In method org.apache.commons.modeler.ManagedBean.getOperations()
<br/>Field org.apache.commons.modeler.ManagedBean.operations
<br/>At ManagedBean.java:[line 238]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N65922');">
<td>EI</td>
<td> org.apache.commons.modeler.NotificationInfo.getNotifTypes() may expose internal representation by returning org.apache.commons.modeler.NotificationInfo.notifTypes</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N65922" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.NotificationInfo
<br/>In method org.apache.commons.modeler.NotificationInfo.getNotifTypes()
<br/>Field org.apache.commons.modeler.NotificationInfo.notifTypes
<br/>At NotificationInfo.java:[line 124]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N65966');">
<td>EI</td>
<td> org.apache.commons.modeler.OperationInfo.getSignature() may expose internal representation by returning org.apache.commons.modeler.OperationInfo.parameters</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N65966" style="display: none;">
<a href="#EI_EXPOSE_REP">Bug type EI_EXPOSE_REP (click for details)</a>
<br/>In class org.apache.commons.modeler.OperationInfo
<br/>In method org.apache.commons.modeler.OperationInfo.getSignature()
<br/>Field org.apache.commons.modeler.OperationInfo.parameters
<br/>At OperationInfo.java:[line 212]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66171');">
<td>MS</td>
<td> org.apache.commons.modeler.Registry.MODELER_MANIFEST isn't final but should be</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66171" style="display: none;">
<a href="#MS_SHOULD_BE_FINAL">Bug type MS_SHOULD_BE_FINAL (click for details)</a>
<br/>In class org.apache.commons.modeler.Registry
<br/>Field org.apache.commons.modeler.Registry.MODELER_MANIFEST</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66698');">
<td>MS</td>
<td> org.apache.commons.modeler.util.IntrospectionUtils.PATH_SEPARATOR isn't final but should be</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66698" style="display: none;">
<a href="#MS_SHOULD_BE_FINAL">Bug type MS_SHOULD_BE_FINAL (click for details)</a>
<br/>In class org.apache.commons.modeler.util.IntrospectionUtils
<br/>Field org.apache.commons.modeler.util.IntrospectionUtils.PATH_SEPARATOR</p>
</td>
</tr>
</table>
<h2>
<a name="Warnings_PERFORMANCE">Performance Warnings</a>
</h2>
<table class="warningtable" width="100%" cellspacing="0">
<tr class="tableheader">
<th align="left">Code&nbsp;</th>
<th align="left">Warning</th>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66010');">
<td>Dm</td>
<td> org.apache.commons.modeler.Registry.convertValue(String,String) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66010" style="display: none;">
<a href="#DM_BOOLEAN_CTOR">Bug type DM_BOOLEAN_CTOR (click for details)</a>
<br/>In class org.apache.commons.modeler.Registry
<br/>In method org.apache.commons.modeler.Registry.convertValue(String,String)
<br/>At Registry.java:[line 761]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66661');">
<td>Dm</td>
<td> org.apache.commons.modeler.util.IntrospectionUtils.setProperty(Object,String,String) invokes dubious Boolean constructor; use Boolean.valueOf(...) instead</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66661" style="display: none;">
<a href="#DM_BOOLEAN_CTOR">Bug type DM_BOOLEAN_CTOR (click for details)</a>
<br/>In class org.apache.commons.modeler.util.IntrospectionUtils
<br/>In method org.apache.commons.modeler.util.IntrospectionUtils.setProperty(Object,String,String)
<br/>At IntrospectionUtils.java:[line 347]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66252');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.ant.MLETTask.archive</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66252" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.ant.MLETTask
<br/>Field org.apache.commons.modeler.ant.MLETTask.archive</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66274');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.ant.MLETTask.codebase</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66274" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.ant.MLETTask
<br/>Field org.apache.commons.modeler.ant.MLETTask.codebase</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66318');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.ant.ModelerTask.log</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66318" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.ant.ModelerTask
<br/>Field org.apache.commons.modeler.ant.ModelerTask.log</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66340');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.ant.RegistryTask.log</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66340" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.ant.RegistryTask
<br/>Field org.apache.commons.modeler.ant.RegistryTask.log</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N65621');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.BaseNotificationBroadcaster.hookCount</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N65621" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.BaseNotificationBroadcaster
<br/>Field org.apache.commons.modeler.BaseNotificationBroadcaster.hookCount</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66418');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.mbeans.SimpleRemoteConnector.prefix</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66418" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.mbeans.SimpleRemoteConnector
<br/>Field org.apache.commons.modeler.mbeans.SimpleRemoteConnector.prefix</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66521');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.modules.MbeansDescriptorsDOMSource.type</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66521" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.modules.MbeansDescriptorsDOMSource
<br/>Field org.apache.commons.modeler.modules.MbeansDescriptorsDOMSource.type</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66543');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.modules.MbeansDescriptorsSerSource.type</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66543" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.modules.MbeansDescriptorsSerSource
<br/>Field org.apache.commons.modeler.modules.MbeansDescriptorsSerSource.type</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66639');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.modules.MbeansSource.type</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66639" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.modules.MbeansSource
<br/>Field org.apache.commons.modeler.modules.MbeansSource.type</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66230');">
<td>UrF</td>
<td> Unread field: org.apache.commons.modeler.Registry.key</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66230" style="display: none;">
<a href="#URF_UNREAD_FIELD">Bug type URF_UNREAD_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.Registry
<br/>Field org.apache.commons.modeler.Registry.key</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66296');">
<td>UuF</td>
<td> Unused field: org.apache.commons.modeler.ant.MLETTask.loaderRef</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66296" style="display: none;">
<a href="#UUF_UNUSED_FIELD">Bug type UUF_UNUSED_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.ant.MLETTask
<br/>Field org.apache.commons.modeler.ant.MLETTask.loaderRef</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66440');">
<td>UuF</td>
<td> Unused field: org.apache.commons.modeler.mbeans.SimpleRemoteConnector.localDomain</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66440" style="display: none;">
<a href="#UUF_UNUSED_FIELD">Bug type UUF_UNUSED_FIELD (click for details)</a>
<br/>In class org.apache.commons.modeler.mbeans.SimpleRemoteConnector
<br/>Field org.apache.commons.modeler.mbeans.SimpleRemoteConnector.localDomain</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66484');">
<td>WMI</td>
<td> Method org.apache.commons.modeler.mbeans.SimpleRemoteConnector.refreshAttributes() makes inefficient use of keySet iterator instead of entrySet iterator</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66484" style="display: none;">
<a href="#WMI_WRONG_MAP_ITERATOR">Bug type WMI_WRONG_MAP_ITERATOR (click for details)</a>
<br/>In class org.apache.commons.modeler.mbeans.SimpleRemoteConnector
<br/>In method org.apache.commons.modeler.mbeans.SimpleRemoteConnector.refreshAttributes()
<br/>At SimpleRemoteConnector.java:[line 272]</p>
</td>
</tr>
</table>
<h2>
<a name="Warnings_STYLE">Style Warnings</a>
</h2>
<table class="warningtable" width="100%" cellspacing="0">
<tr class="tableheader">
<th align="left">Code&nbsp;</th>
<th align="left">Warning</th>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66362');">
<td>CD</td>
<td> Class org.apache.commons.modeler.mbeans.SimpleRemoteConnector has a circular dependency with other classes.</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66362" style="display: none;">
<a href="#CD_CIRCULAR_DEPENDENCY">Bug type CD_CIRCULAR_DEPENDENCY (click for details)</a>
<br/>In class org.apache.commons.modeler.mbeans.SimpleRemoteConnector
<br/>In class org.apache.commons.modeler.mbeans.MBeanProxy</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N65547');">
<td>DLS</td>
<td> Dead store to local variable in method org.apache.commons.modeler.BaseModelMBean.setAttributes(javax.management.AttributeList)</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N65547" style="display: none;">
<a href="#DLS_DEAD_LOCAL_STORE">Bug type DLS_DEAD_LOCAL_STORE (click for details)</a>
<br/>In class org.apache.commons.modeler.BaseModelMBean
<br/>In method org.apache.commons.modeler.BaseModelMBean.setAttributes(javax.management.AttributeList)
<br/>At BaseModelMBean.java:[line 723]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66565');">
<td>REC</td>
<td> Method org.apache.commons.modeler.modules.MbeansSource.execute() catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66565" style="display: none;">
<a href="#REC_CATCH_EXCEPTION">Bug type REC_CATCH_EXCEPTION (click for details)</a>
<br/>In class org.apache.commons.modeler.modules.MbeansSource
<br/>In method org.apache.commons.modeler.modules.MbeansSource.execute()
<br/>At MbeansSource.java:[line 226]</p>
</td>
</tr>
<tr class="tablerow0" onclick="toggleRow('N66602');">
<td>REC</td>
<td> Method org.apache.commons.modeler.modules.MbeansSource.execute() catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught</td>
</tr>
<tr class="detailrow0">
<td/>
<td>
<p id="N66602" style="display: none;">
<a href="#REC_CATCH_EXCEPTION">Bug type REC_CATCH_EXCEPTION (click for details)</a>
<br/>In class org.apache.commons.modeler.modules.MbeansSource
<br/>In method org.apache.commons.modeler.modules.MbeansSource.execute()
<br/>At MbeansSource.java:[line 250]</p>
</td>
</tr>
<tr class="tablerow1" onclick="toggleRow('N66757');">
<td>REC</td>
<td> Method org.apache.commons.modeler.util.IntrospectionUtils.setProperty(Object,String) catches Exception, but Exception is not thrown in the try block and RuntimeException is not explicitly caught</td>
</tr>
<tr class="detailrow1">
<td/>
<td>
<p id="N66757" style="display: none;">
<a href="#REC_CATCH_EXCEPTION">Bug type REC_CATCH_EXCEPTION (click for details)</a>
<br/>In class org.apache.commons.modeler.util.IntrospectionUtils
<br/>In method org.apache.commons.modeler.util.IntrospectionUtils.setProperty(Object,String)
<br/>At IntrospectionUtils.java:[line 479]</p>
</td>
</tr>
</table>
<h1>
<a name="Details">Details</a>
</h1>
<h2>
<a name="CD_CIRCULAR_DEPENDENCY">CD_CIRCULAR_DEPENDENCY: Test for circular dependencies among classes.</a>
</h2>
	
    <p>
    This class has a circular dependency with other classes. This makes building these classes
    difficult, as each is dependent on the other to build correctly. Consider using interfaces
    to break the hard dependency.
    </p>
    
  	  
<h2>
<a name="DLS_DEAD_LOCAL_STORE">DLS_DEAD_LOCAL_STORE: Dead store to local variable</a>
</h2>

<p>
This instruction assigns a value to a local variable,
but the value is not read by any subsequent instruction.
Often, this indicates an error, because the value computed 
is never used.
</p>

    
<h2>
<a name="DM_BOOLEAN_CTOR">DM_BOOLEAN_CTOR: Method invokes dubious Boolean constructor; use Boolean.valueOf(...) instead</a>
</h2>

  <p> Creating new instances of <code>java.lang.Boolean</code> wastes
  memory, since <code>Boolean</code> objects are immutable and there are
  only two useful values of this type.&nbsp; Use the <code>Boolean.valueOf()</code>
  method to create <code>Boolean</code> objects instead.</p>

    
<h2>
<a name="EI_EXPOSE_REP">EI_EXPOSE_REP: Method may expose internal representation by returning reference to mutable object</a>
</h2>

  <p> Returning a reference to a mutable object value stored in one of the object's fields
  exposes the internal representation of the object.&nbsp; 
	If instances
	are accessed by untrusted code, and unchecked changes to
	the mutable object would compromise security or other
	important properties, you will need to do something different.
  Returning a new copy of the object is better approach in many situations.</p>

    
<h2>
<a name="IL_INFINITE_RECURSIVE_LOOP">IL_INFINITE_RECURSIVE_LOOP: An apparent infinite recursive loop.</a>
</h2>

<p>This method unconditionally invokes itself. This would seem to indicate
an infinite recursive loop that will result in a stack overflow.</p>

    
<h2>
<a name="IS2_INCONSISTENT_SYNC">IS2_INCONSISTENT_SYNC: Inconsistent synchronization</a>
</h2>

  <p> The fields of this class appear to be accessed inconsistently with respect
  to synchronization.&nbsp; This bug report indicates that the bug pattern detector
  judged that
  <ol>
  <li> The class contains a mix of locked and unlocked accesses,</li>
  <li> At least one locked access was performed by one of the class's own methods, and</li>
  <li> The number of unsynchronized field accesses (reads and writes) was no more than
       one third of all accesses, with writes being weighed twice as high as reads</li>
  </ol>
  </p>

  <p> A typical bug matching this bug pattern is forgetting to synchronize
  one of the methods in a class that is intended to be thread-safe.</p>

  <p> You can select the nodes labeled "Unsynchronized access" to show the
  code locations where the detector believed that a field was accessed
  without synchronization.</p>

  <p> Note that there are various sources of inaccuracy in this detector;
  for example, the detector cannot statically detect all situations in which
  a lock is held.&nbsp; Also, even when the detector is accurate in
  distinguishing locked vs. unlocked accesses, the code in question may still
  be correct.</p>

  <p> This description refers to the "IS2" version of the pattern detector,
  which has more accurate ways of detecting locked vs. unlocked accesses
  than the older "IS" detector.</p>

    
<h2>
<a name="MS_SHOULD_BE_FINAL">MS_SHOULD_BE_FINAL: Field isn't final but should be</a>
</h2>

	<p>
 A mutable static field could be changed by malicious code or
        by accident from another package.
        The field could be made final to avoid
        this vulnerability.</p>

    
<h2>
<a name="NP_NULL_ON_SOME_PATH">NP_NULL_ON_SOME_PATH: Possible null pointer dereference in method</a>
</h2>

<p> A reference value dereferenced here might be null at runtime.&nbsp;
This may lead to a <code>NullPointerException</code> when the code is executed.</p>

    
<h2>
<a name="NP_UNWRITTEN_FIELD">NP_UNWRITTEN_FIELD: Read of unwritten field</a>
</h2>

  <p> The program is deferencing a field that does not seem to ever be
written to. Deferencing this value will generate a null pointer exception.
</p>

    
<h2>
<a name="REC_CATCH_EXCEPTION">REC_CATCH_EXCEPTION: java.lang.Exception is caught when Exception is not thrown</a>
</h2>
  
  <p>
  This method uses a try-catch block that catches Exception objects, but Exception is not
  thrown within the try block, and RuntimeException is not explicitly caught.  It is a common bug pattern to
  say try { ... } catch (Exception e) { something } as a shorthand for catching a number of types of exception
  each of whose catch blocks is identical, but this construct also accidentally catches RuntimeException as well,
  masking potential bugs.
  </p>
  
	  
<h2>
<a name="UCF_USELESS_CONTROL_FLOW">UCF_USELESS_CONTROL_FLOW: Useless control flow in method</a>
</h2>

<p> This method contains a useless control flow statement.&nbsp;
Often, this is caused by inadvertently using an empty statement as the
body of an <code>if</code> statement, e.g.:</p>
<pre>
    if (argv.length == 1);
        System.out.println("Hello, " + argv[0]);
</pre>

    
<h2>
<a name="URF_UNREAD_FIELD">URF_UNREAD_FIELD: Unread field</a>
</h2>

  <p> This field is never read.&nbsp; Consider removing it from the class.</p>

    
<h2>
<a name="UUF_UNUSED_FIELD">UUF_UNUSED_FIELD: Unused field</a>
</h2>

  <p> This field is never used.&nbsp; Consider removing it from the class.</p>

    
<h2>
<a name="UWF_UNWRITTEN_FIELD">UWF_UNWRITTEN_FIELD: Unwritten field</a>
</h2>

  <p> This field is never written.&nbsp; All reads of it will return the default
value. Check for errors (should it have been initialized?), or remove it if it is useless.</p>

    
<h2>
<a name="WMI_WRONG_MAP_ITERATOR">WMI_WRONG_MAP_ITERATOR: Inefficient use of keySet iterator instead of entrySet iterator</a>
</h2>

<p> This method accesses the value of a Map entry, using a key that was retrieved from
a keySet iterator. It is more efficient to use an iterator on the entrySet of the map, to avoid the 
Map.get(key) lookup.</p>

        </body>
</html>
